package br.com.friendzoone.pessoa;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;

import br.com.friendzoone.modelo.enums.EnumSituacao;
import br.com.friendzoone.modelo.enums.EnumStatusPessoa;
import br.com.friendzoone.modelo.pessoa.Pessoa;
import br.com.friendzoone.modelo.pessoa.enums.EnumGeneroPessoa;
import br.com.friendzoone.recursos.RecursosFaces;
import br.com.friendzoone.solr.util.ValidacaoException;
import br.com.friendzoone.util.Pages;

@ManagedBean
@ViewScoped
public class PessoaHome extends RecursosFaces implements Pages {

	private Pessoa pessoa = new Pessoa();

	public String salvar() {
		PessoaSolr pessoaSolr = new PessoaSolr();
		try {
			pessoa.setSituacaoPessoa(EnumSituacao.ATIVO);
			pessoa.setDataCadastro(new Date());
			pessoa.setStatus( EnumStatusPessoa.NENHUM );
			pessoa.setSenhaPessoa( this.getSenhaMD5( pessoa.getSenhaPessoa() ) );
			pessoaSolr.salvar(pessoa);
		} catch (final ValidacaoException e) {
			e.printStackTrace();
		} finally {
			pessoaSolr.close();
			pessoaSolr = null;
		}
		pessoa = new Pessoa();
		return  VIEW_LOGIN;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public List<SelectItem> getSexos() {

		final List<SelectItem> sexos = new ArrayList<SelectItem>();

		for (final EnumGeneroPessoa enumGeneroPessoaFor : EnumGeneroPessoa.values()) {
			sexos.add(new SelectItem(enumGeneroPessoaFor, enumGeneroPessoaFor.getDescricao()));
		}
		return sexos;
	}
}
